Load balancing devices and method therefor

ABSTRACT

A method of balancing the load of resources in a packet switched connection within a communication system, said system comprising processing units ( 11; 21 ) for performing communication, at least one load balancing unit ( 12; 22 ) for distributing the load to said processing units ( 11; 21 ), and a data storage ( 14; 24 ), said method comprising the steps of: obtaining a current connection state as well as a current load state of said processing units from said data storage ( 14; 24 ); selecting by said load balancing unit ( 12; 22 ) a processing unit on a per-packet basis; and maintaining information about the load state of each processing unit ( 11; 21 ) so that said selecting step is performed by selecting a processing unit to serve and process a respective packet based on the load state.

FIELD OF THE INVENTION

The present invention relates to an automated load balancing andsubstantially streamlined resource management in a communication system.The present invention is particularly applicable when high-speed packetbased links are interfaced with signal processing resources.

BACKGROUND OF THE INVENTION

Typically, in present communication systems a resource managementfunctionality plays a significant role in any network element providingheterogeneous signal processing services. This means that severalprocessing units must be dedicated to provide the resource managementfunctionality. Also, quite a high amount of the internal communicationbandwidth must be reserved for exchanging the resource managementrelated control messages. However, increasing the number of the mediaprocessing units may cause the resource manager to become a bottleneckthat may mean a reduced overall cost-efficiency, and, in practice,longer latency times when responding to new service requests.

FIG. 3 depicts an arrangement where a load balancing device 32 is usedin a conventional way. Reference numeral 33 designates a device forrouting packets of a communication connection. Particularly, accordingto this prior art, the processing unit is selected out of a plurality ofprocessing units 31 on a per-connection basis.

However, the prior art described above suffers from the followingdrawbacks. This conventional resource management system is not scaleablewhich means that there is a large number of dedicated units as well as alarge number of control messages. In addition, delays in responding toservice requests occur. Moreover, the utilization of statisticalmultiplexing inflicts difficulties.

Particularly, the processing times in the packet switched connectionaccording to the prior art are not deterministic. Specifically, in theconventional arrangement, one digital signal processor (DSP) isreceiving and processing several channels (e.g. 8 . . . 16)simultaneously. This means that a packet must wait a non-deterministictime before it is processed, that is, depending on how many channels areprocessed before that specific channel.

SUMMARY OF THE INVENTION

Accordingly, it is an object of the present invention to overcome theseshortcomings of the prior art and to provide a streamlined andcost-effective way to manage the available resource pool.

According to the present invention, the object is solved by providing amethod of balancing the load of resources in a packet switchedconnection within a communication system, said system comprisingprocessing units for performing communication, at least one loadbalancing unit for distributing the load to said processing units, and adata storage, said method comprising the steps of: obtaining a currentconnection state as well as a current load state of said processingunits from said data storage; selecting by said load balancing unit aprocessing unit on a per-packet basis; and maintaining information aboutthe load state of each processing unit so that said selecting step isperformed by selecting a processing unit to serve and process arespective packet based on the load state.

Here, the data storage can be accessed to by said load balancing unit orsaid processing units. Further, the information about the load state maybe maintained as a Boolean state, i.e. to indicate free or not free.

The selection of a processing unit can be done in a round-robin fashion.

Further, a supported service profile for each processing unit can bemaintained in addition. In this case, the supported service profile canbe used as additional selection criteria.

In the method according to the present invention, the load balancingunit can obtain a load state from each processing unit upon a hardwarebased mechanism or a packet based mechanism. In the latter case, a loadstate of a processing unit may be inserted into a packet processed bysaid unit or a packet returned by a processing unit may be interpretedas a flag for a free resource.

Besides, should excess traffic occur it can be redirected to anotherload balancing unit, wherein said excess traffic would be defined uponthe number of active processing units.

The method according to the present invention provides a more effectiveutilization of the media processing resources, since the resources aremanaged on the basis of an effective resource allocation of the wholenetwork element instead of managing resource allocations of singleprocessing units. Thus, the benefits of a statistical multiplexing canbe exploited easily.

An additional benefit is the deterministic, i.e. optimal, processingtime that a single packet always encounters, since a processing unitserves only one packet at a time.

Moreover, with the method according to the present invention, theprocessing delay of a received packet is always optimal and veryconstant. Consequently, a constant processing time minimizes unwantedjitter and other possible fluctuations of the traffic flow.

According to the present invention, the object is further solved byproviding a device unit for serving and processing packets of acommunication connection, comprising means adapted to inform a loadstate of said device to a balancing unit; and means adapted to obtain astate of said communication connection.

In this processing device unit, said obtaining means can be adapted toretrieve said communication connection state from a data storage or froma packet being under processing.

According to the present invention, the object is still further solvedby providing a device unit for balancing a load of each of multipleprocessing units-performing a packet switched communication connection,comprising: means for maintaining a load state of each of saidprocessing units; and means adapted to select a processing unit on thebasis of a respective load state.

In this balancing device unit, a load state of a processing unit may becontained in a table. The state can be expressed as a Boolean state oras value which corresponds to the percentage of load.

Further, said selecting means can be adapted such that a processing unitis selected also on the basis of a parameter indicating the serviceprofile supported by a respective processing unit. In this case, saidparameter could be contained in a table.

As a modification, the load balancing device unit may further comprisemeans adapted to insert a communication connection state into a packetto be routed.

In a preferred embodiment, the processing units are comprised ofmulticore digital signal processing means having a shared data storagefor all cores, whereby said device comprises a first level of loadbalancing for selecting a digital signal processing means and a secondlevel of load balancing for selecting a single core. As anothermodification, the load balancing device unit may further comprise meansfor redirecting excess traffic to another load balancing device unitaccording to the present invention, wherein said excess traffic isdefined upon the number of active processing units.

Furthermore, a system adapted to perform the method according to thepresent invention and/or comprising one or more devices according to thepresent invention does also solve the object.

BRIEF DESCRIPTION OF THE DRAWINGS

Further details and advantages of the present invention as well asfurther modifications thereof are apparent from the detailed descriptionof the preferred embodiments which are to be taken in conjunction withthe appended drawings, in which:

FIG. 1 shows a first embodiment of the present invention;

FIG. 2 shows a second embodiment of the present invention; and

FIG. 3 shows a conventional arrangement.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

The present invention introduces a load balancing unit (or DSP selector)in front of the DSP resource pool. The main idea behind the loadbalancing unit is to remove (or at least substantially reduce) the needfor separate and poorly scaleable resource management layers.

The FIGS. 1 and 2 present the two preferred implementation options. Itis common to both implementations that the processing unit is selectedby the load balancing unit on a per-packet basis.

Specifically, in FIG. 1, reference numeral 11 designates 1 . . . Nprocessing units for serving packets of a communication connection;reference numeral 12 designates the load balancing unit; referencenumeral 14 designates a data storage; and reference numeral 13designates a routing device for routing packets of a communicationconnection.

According to the arrangement depicted in FIG. 1, a connection state isstored in the data storage 14 by the load balancing unit 12 as will beapparent from the description given below.

Next, in FIG. 2, reference numeral 21 designates 1 . . . N processingunits for serving packets of a communication connection; referencenumeral 22 designates the load balancing unit; reference numeral 24designates a shared data storage; and reference numeral 23 designates arouting device for routing packets of a communication connection.

According to the arrangement depicted in FIG. 2, a connection state isstored in the shared data storage 24 by processing units 21 as will beapparent from the description given below.

What is common to both implementations is that the load balancing unitkeeps track of the total utilization of the processing units and thisoverall load information can be provided for other network managementprocesses. Specifically, the arrangement that is depicted in FIGS. 1 and2 provides a streamlined and more cost-effective way to manage theavailable resource pool. The main idea behind the present invention isthat the single processing units are not dedicated to serve a specificconnection (or a call). Instead, the load balancing unit selects anyfree processing unit oh a per-packet basis. The current connection stateis obtained from a data storage that may be located either at the loadbalancing unit (FIG. 1) or at the processing units (as shared memory asis depicted in FIG. 2). In the former case, it would be essential thatthe connection state is inserted into the packets by the load balancingunit. The load balancing unit maintains the load state of eachprocessing unit (preferably as a Boolean state) and selects any of thefree (=non-active) processing units to serve and process the receivedpacket. The selection of a processing unit, e.g. in a round-robinfashion, results the automatic load balancing for the system. Asupported service profile for each processing unit (e.g. only GSMcodecs) may also be maintained and used as an additional selectioncriteria.

Furthermore, the conveyance of the load state from each processing unitto the load balancing unit may happen either by a hardware basedmechanism (such as dedicated pin, shared memory etc.) or a packet basedmechanism (such as inserting the load state to returning (processed)packets or just interpreting a returning packet as a flag for a freeresource). The load balancing unit and the processing units may beinterconnected for example with Ethernet/IP, thus they do not require aphysical co-location.

Some functionalities that the processing units, the load balancing unitand the data storage provide in preferred embodiments of the inventionare outlined in the following.

The processing unit implements a mechanism to inform the load status tothe load balancing unit which can be a hardware based mechanism(dedicated pin, shared memory etc.) or a packet based, e.g. insertingthe status in the processed packets. Further, the processing unitcomprises means for obtaining the connection state from the data storageor from the received packet.

The load balancing unit which can also be one of the processing unitsimplements a table that contains the load status of each DSP unit in aBoolean format (free or not free) or as a percentage of load (0 . . .100% load). Further, it comprises means for selecting a resource basedon the load status, wherein a parameter that indicates the supportedservice profile for each processing unit (e.g. only EFR codec) may alsobe used as an additional selection variable. Optionally, the loadbalancing unit may also comprise means for inserting theconnection-state to a routed packet.

The data storage has to maintain the connection states by mapping themto suitable connection identifiers such as UDP ports and may lock thestates in order to handle bursts of packets.

While the above may be considered as a basic arrangement according tothe present invention, further developments of the same invention may beas follows.

Since the state-of-the art signal processors consist of multiple cores(e.g. 4-8) per one physical chip, one possibility could be to implementthe load balancing unit functionality inside each multi-core DSP devicewhich usually have a shared memory (data storage) for all cores. Thisway, there would be two levels of load balancing: one for selecting theDSP and a second level for selecting a single core.

In addition, it would also be preferred to have a redirectingfunctionality. That is, the excess traffic of a first load balancingunit could be redirected to another load balancing unit if a certainlimit (or load) is exceeded, i.e. when all or most of the processingunits are active when a new packet arrives.

According to the above, the benefits of a streamlined resourcemanagement, an automated load balancing between a high number ofprocessing units, a more efficient utilization of the DSP resourcesresulting in a statistical multiplexing with a high number of processingunits managed as a whole, the guaranteeing of a deterministic processingdelay for each packet leading to a minimum delay and a smooth trafficpattern, and maintaining the possibility to still be able to dedicateprocessing units to a specific service as an optimal utilization ofmemory thus gaining a highest number of channels can be achieved.

According to the above, it is provided a method of balancing the load ofresources in a packet switched connection within a communication system,said system comprising processing units 11; 21 for performingcommunication, at least one load balancing unit 12; 22 for distributingthe load to said processing units 11; 21, and a data storage 14; 24,said method comprising the steps of: obtaining a current connectionstate as well as a current load state of said processing units from saiddata storage 14; 24; selecting by said load balancing unit 12; 22 aprocessing unit on a per-packet basis; and maintaining information aboutthe load state of each processing unit 11; 21 so that said selectingstep is performed by selecting a processing unit to serve and process arespective packet based on the load state.

While it is described above what is presently considered to be thepreferred embodiments of the present invention, it is apparent to thoseskilled in the art that various modifications are possible to thepresent invention without departing from the spirit and scope thereofwhich is defined in the appended claims.

1-25. (canceled)
 26. A method for balancing the load of resources in apacket switched connection within a communication system, said systemcomprising processing units for performing communication, at least oneload balancing unit for distributing the load to said processing units,and a data storage, said method comprising the steps of: obtaining acurrent connection state as well as a current load state of saidprocessing units from said data storage; selecting by said loadbalancing unit a processing unit on a per packet basis irrespective of aspecific connection to which a respective packet belongs; maintaininginformation about the load state of each processing unit so that saidselecting step is performed by selecting a processing unit to serve andprocess a respective packet based on the load state.
 27. A methodaccording to claim 26, wherein said data storage is accessed to by saidload balancing unit.
 28. A method according to claim 26, wherein saiddata storage is accessed to by said processing units.
 29. A methodaccording to claim 26, wherein said information about the load state ismaintained as a Boolean state.
 30. A method according to claim 26,wherein a processing unit is selected in a round-robin fashion.
 31. Amethod according to claim 26, wherein a supported service profile foreach processing unit is maintained.
 32. A method according to claim 31,wherein said supported service profile is used as additional selectioncriteria.
 33. A method according to claim 26, wherein said loadbalancing unit obtains a load state from each processing unit upon ahardware based mechanism.
 34. A method according to claim 26, whereinsaid load balancing unit obtains a load state from each processing unitupon a packet based mechanism.
 35. A method according to claim 34,wherein a load state of a processing unit is inserted into a packetprocessed by said unit.
 36. A method according to claim 34, wherein apacket returned by a processing unit is interpreted as a flag for a freeresource.
 37. A method according to claim 26, wherein excess traffic isredirected to another load balancing unit, said excess traffic beingdefined upon the number of active processing units.
 38. A device unitfor serving and processing packets of a communication connection,comprising: means adapted to inform a load state of said device to abalancing unit; and means adapted to obtain a state of saidcommunication connection, wherein said device unit is adapted to serveand process packets of plural connections.
 39. A device unit accordingto claim 38, wherein said obtaining means is adapted to retrieve saidcommunication connection state from a data storage.
 40. A device unitaccording to claim 38, wherein said obtaining means is adapted toretrieve said communication connection state from a packet being underprocessing.
 41. A device unit for balancing a load of each of multipleprocessing units performing a packet switched communication connection,comprising: means for maintaining a load state of each of saidprocessing units; and means adapted to select a processing unit on thebasis of a respective load state on a per packet basis irrespective of aspecific connection to which a respective packet belongs.
 42. A deviceaccording to claim 41, wherein a load state of a processing unit iscontained in a table.
 43. A device according to claim 41, wherein a loadstate of a processing unit is expressed as a Boolean value.
 44. A deviceaccording to claim 41, wherein a load state of a processing unit isexpressed as value which corresponds to the percentage of load.
 45. Adevice according to claim 41, wherein said selecting means is adaptedsuch that a processing unit is selected also on the basis of a parameterindicating the service profile supported by a respective processingunit.
 46. A device according to claim 45, wherein said parameter iscontained in a table.
 47. A device according to claim 41, furthercomprising means adapted to insert a communication connection state intoa packet to be routed.
 48. A device according to claim 41, wherein theprocessing units are comprised of multicore digital signal processingmeans having a shared data storage for all cores, whereby said devicecomprises a first level of load balancing for selecting a digital signalprocessing means and a second level of load balancing for selecting asingle core.
 49. A device according to claim 41, further comprisingmeans for redirecting excess traffic to another device, wherein saidexcess traffic is defined upon the number of active processing units.50. A system adapted to perform a method according to claim 26.